<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>实现一个函数可以将源数据按照header做匹配产出二维数组</h1>

    <script>
        let sourceData = [
                { name: "张三", age: 18, height: 180 },
                { name: "李四", age: 28, height: 160 },
                { name: "王五", age: 38, height: 170 }
            ]

            function tansData(souceData, header) {
                // 定义一个空数组 用于存放最后的值
                let newArr = []
                // 先遍历穿进来的第一个参数
                souceData.forEach(item =>{
                    // 定义一个空数组
                   let arr = []
                    //    通过Object.keys()得到 第一个参数中的每个对象中的key值 是一个数组
                    //    let one = Object.keys(item)
                    //    console.log(one);
                    // 遍历 存放key值得数组 得到每一个第一个参数中 每一个key值
                    Object.keys(item).forEach(key =>{
                        // 通过 Object.values() 得到第二个参数数组中的每一个值  也是一个数组
                        // let two = Object.values(header)
                        // console.log(two);
                        // 判断 第二个参数数组中的值 是否存在第一个参数数组 中遍历后的key数组中
                        if(Object.values(header).includes(key)){
                            // 如果存在 就往arr 这个数组中添加  值是第一个参数中每个对象中的 第二个参数的值和第一个参数的key相匹配的值
                            arr.push(item[key])
                        }
                        // console.log(arr);
                    })
                    // 最后把每个数组 添加到一个大数组中
                    newArr.push(arr)
                })
                return newArr
            }
            const res = tansData(sourceData,['name','age'])
            console.log(res);

            // header -> ['name', 'age']
            targetData = [
                ['张三', 18],
                ['李四', 28],
                ['王五', 38]
            ]

            // header -> ['name', 'height']
            targetData = [
                ['张三', 180],
                ['李四', 160],
                ['王五', 170]
            ]

    </script>
</body>
</html>